package util;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import java.util.Iterator;
import javax.ws.rs.core.MultivaluedMap;
import restservices.request.GeolocalizacionRequest;
import restservices.response.GeolocalizacionOSMResponse;
public class Services {
public static GeolocalizacionRequest localizarPedidoPorId(String pedidoId) {
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/TeleCafe/rest/mockup/localizacion");
MultivaluedMap formData = new MultivaluedMapImpl();
String input = "{\"idpedido\":\"" + pedidoId + "\"}";
ClientResponse response = webResource.type("application/json")
.post(ClientResponse.class, input);
String respuesta = response.getEntity(String.class);
Gson gson = new Gson();
GeolocalizacionRequest gloc = new GeolocalizacionRequest();
gloc = gson.fromJson(respuesta, GeolocalizacionRequest.class);
return gloc;
}
public static GeolocalizacionOSMResponse localizarPedidoPorCalle(String calle) {
Client client = Client.create();
WebResource webResource = client.resource("http://nominatim.openstreetmap.org/search.php");
MultivaluedMap queryParams = new MultivaluedMapImpl();
queryParams.add("q", calle);
queryParams.add("format", "json");
ClientResponse response = webResource.queryParams(queryParams).get(ClientResponse.class);
GeolocalizacionOSMResponse localizacion = new GeolocalizacionOSMResponse();
if (response.getStatus() == 200) {
String respuesta = response.getEntity(String.class);
JsonElement json = new JsonParser().parse(respuesta);
JsonArray array = json.getAsJsonArray();
Iterator iterator = array.iterator();
while (iterator.hasNext()) {
JsonElement json2 = (JsonElement) iterator.next();
String jsonparseado = json2.toString();
jsonparseado = jsonparseado.replace("class", "clase");
Gson gson = new Gson();
localizacion = gson.fromJson(jsonparseado, GeolocalizacionOSMResponse.class);
break;
}
}
return localizacion;
}
}